package me.jiatao.hilt

import android.util.Log
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent
import dagger.hilt.android.scopes.ActivityScoped
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

/**
 * 模拟OkHttp实例
 */
class OkHttpClient {
    fun post() {
        Log.e("OkHttpClient", "------ OkHttpClient post  ------")
    }
}

/**
 * 这里使用了 SingletonComponent，因此 NetworkModule 绑定到 Application 的生命周期。
 */
@InstallIn(ActivityComponent::class)
@Module
object NetworkModule {

    /**
     * @Provides 常用于被 @Module 注解标记类的内部的方法，并提供依赖项对象。
     * @Singleton 提供单例
     */
    @Provides
    @ActivityScoped
    fun provideOkHttpClient(): OkHttpClient {
        return OkHttpClient()
    }
}
